package chan.project.smartlawcommon.config;

import cn.dev33.satoken.stp.StpUtil;
import jakarta.servlet.http.HttpSession;
import jakarta.websocket.HandshakeResponse;
import jakarta.websocket.server.HandshakeRequest;
import jakarta.websocket.server.ServerEndpointConfig;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * 获取HttpSession，这样的话，websocket就能操作HttpSession
 */
public class GetHttpSessionConfig extends ServerEndpointConfig.Configurator {

    @Override
    public void modifyHandshake(ServerEndpointConfig serverEndpointConfig, HandshakeRequest request, HandshakeResponse response) {
        // 获取请求头中的 token
        String token = request.getHeaders().get("satoken").get(0);
        // 将 token 存入 userProperties，供后续使用
        serverEndpointConfig.getUserProperties().put("satoken", token);
    }

}
